package com.order.manager.Config;

import com.google.code.kaptcha.Producer;
import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

/**
 * 验证码生成器配置类
 * 配置Kaptcha验证码的基本属性和样式
 */
@Configuration
public class kaptchaConfig {

    /**
     * 注册验证码生成器Bean
     * @return 配置好的验证码生成器实例
     */
    @Bean
    public Producer producer() {
        // 1. 创建配置属性对象
        Properties properties = new Properties();

        // 2. 配置验证码图片基本属性
        properties.setProperty("kaptcha.image.width", "150");  // 验证码图片宽度
        properties.setProperty("kaptcha.image.height", "50");  // 验证码图片高度

        // 3. 配置验证码文本生成规则
        properties.setProperty("kaptcha.textproducer.char.string", "0123456789");  // 验证码字符范围（纯数字）
        properties.setProperty("kaptcha.textproducer.char.length", "4");  // 验证码字符长度

        // 4. 使用Properties创建配置对象
        Config config = new Config(properties);

        // 5. 创建默认验证码生成器实例
        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();

        // 6. 应用配置到生成器
        defaultKaptcha.setConfig(config);

        // 7. 返回配置好的生成器（通过接口类型返回）
        return defaultKaptcha;
    }
}